package pk.sistema.vendas.web.teste;

import static org.junit.Assert.*;

import java.util.Date;
import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import pk.sistema.vendas.web.cliente.Cliente;
import pk.sistema.vendas.web.cliente.ClienteRN;
import pk.sistema.vendas.web.produto.Produto;
import pk.sistema.vendas.web.produto.ProdutoRN;
import pk.sistema.vendas.web.vendas.Venda;
import pk.sistema.vendas.web.vendas.VendaRN;

public class VendaTeste {
	
	Cliente c1;
	Cliente c2;
	Cliente c3;
	
	Produto p1;
	Produto p2;
	Produto p3;

	
	@Before
	public void setup(){
		c1 = new Cliente("Maria", "8477834", "rua 1", 2000d, "maria@", new Date());
		c2 = new Cliente("Mariana", "999944", "rua 12", 3000d, "mariana@", new Date());
		c3 = new Cliente("Francisco", "784785", "rua 35", 2000d, "francisco@", new Date());
		
		ClienteRN clienteRN = new ClienteRN();
		clienteRN.salvar(c1);
		clienteRN.salvar(c2);
		clienteRN.salvar(c3);
		
		p1 = new Produto("und", "caderno", new Date(), 45, 6.50d);
		p2 = new Produto("lot", "livro", new Date(), 70, 35.50d);
		p3 = new Produto("pct", "lapis", new Date(), 100, 2.50d);
		
		ProdutoRN produtoRN = new ProdutoRN();
		produtoRN.salvar(p1);
		produtoRN.salvar(p2);
		produtoRN.salvar(p3);
		
	}
	
	@After
	public void limparBanco(){
		VendaRN vendaRN = new VendaRN();
		
		List<Venda> produtos = vendaRN.listar();
		
		for (Venda produto : produtos){
			vendaRN.excluir(produto);
		}
	}
	
	@Test
	public void registrarTeste(){
	
		VendaRN vendaRN = new VendaRN();
		
		Venda venda1 = new Venda();
		venda1.setCliente(c1);
		venda1.setProduto(p1);
		venda1.setDataVenda(new Date());
		
		Venda venda2 = new Venda();
		venda2.setCliente(c2);
		venda2.setProduto(p3);
		venda2.setDataVenda(new Date());
		
		Venda venda3 = new Venda();
		venda3.setCliente(c3);
		venda3.setProduto(p3);
		venda3.setDataVenda(new Date());
		
		vendaRN.registrarVenda(venda1);
		vendaRN.registrarVenda(venda2);
		vendaRN.registrarVenda(venda3);
		
		List<Venda> vendas = vendaRN.listar();
		assertEquals(3, vendas.size());
	}
	


}
